Peer-to-peer communication, and in fact all types of communication, depend on the possibility of establishing valid connections between selected entities. These entities may be peers (e.g., users or machines) or groups formed within a peer-to-peer network. However, entities may have one or several addresses that may vary because the entities move in the network, because the topology changes, because an address lease cannot be renewed, because the group function or purpose has changed, etc. A classic architectural solution to this addressing problem is thus to assign to each entity a stable name, and to “resolve” this name to a current address when a connection is needed. This name to address translation must be very robust, and it must also allow for easy and fast updates.
To increase the likelihood that an entity's address may be found by those seeking to connect to it, many peer-to-peer protocols allow entities to publish their individual or group address(es) through various mechanisms. Some protocols also allow a client to acquire knowledge of other entities' addresses through the processing of requests from others in the network. Indeed, it is this acquisition of address knowledge that enables successful operation of these peer-to-peer networks. That is, the better the information about other peers and groups in the network, the greater the likelihood that a search for a particular resource will converge.
However, without a robust security infrastructure underlying the peer-to-peer protocol, malicious entities can easily disrupt the ability for such peer-to-peer systems to converge. Such disruptions may be caused, for example, by an entity that engages in identity theft. In such an identity theft attack on the peer-to-peer network, a malicious node publishes address information for IDs with which it does not have an authorized relationship, i.e. it is neither the owner nor a group member, etc. A malicious entity could also flood the network with bad information so that other entities in the network would tend to forward requests to non-existent nodes (which would adversely affect the convergence of searches), or to nodes controlled by the attacker.
While validation of an address certificate may prevent the identity theft problem, such is ineffective against this second type of attack. An attacker can continue to generate verifiable address certificates (or have them pre-generated) and flood the corresponding IDs in the peer-to-peer cloud. If any of the nodes attempts to verify ownership of the ID, the attacker would be able to verify that it is the owner for the flooded IDs because, in fact, it is. However, if the attacker manages to generate enough IDs it can bring most of the peer-to-peer searches to one of the nodes controlled by him. At this point the attacker can fairly well control and direct the operation of the network.
If the peer-to-peer protocol requires that all new address information first be verified to prevent the identity theft problem discussed above, a third type of attack becomes available to malicious entities. This attack to which these types of peer-to-peer networks are susceptible is a form of a denial of service (DoS) attack. If all the nodes that learn about new records try to perform the ID ownership check, a storm of network activity against the advertised ID owner will occur. Exploiting this weakness, an attacker could mount an IP DoS attack against a certain target. For example, if a malicious entity advertises Microsoft's Web IP address as the ID's IP, all the nodes in the peer-to-peer network that receive this advertised IP will try to connect to that IP (Microsoft's Web server's IP) to verify the authenticity of the record. Of course Microsoft's server will not be able to verify ownership of the ID because the attacker generated this information. However, the damage has already been done. That is, the attacker just managed to convince a good part of the peer-to-peer community to attack Microsoft.
A malicious entity could also attempt to disrupt the operation of the peer-to-peer network by trying to ensure that searches will not converge. Specifically, an attacker could attempt to affect the effectiveness of the search algorithm used by the peer-to-peer protocol to implement a sort of DoS attack for searches. For example, instead of forwarding the search to a node in its cache that is closer to the ID to aid in the convergence of the search, it could forward the search to a node that is further away from the requested ID. Alternatively, the malicious entity could simply not respond to the search request at all.
At the peer-to-peer group level, additional security concerns become apparent. Because many groups are established to isolate information shared within the group from other peers in the peer-to-peer network, controlling group membership becomes important to maintain that isolation. However, malicious nodes may spoof membership of the group and distribute the group information beyond the group. Likewise, malicious nodes may improperly expand the group by inviting other peers into the group. Even if the malicious node is discovered and properly excluded from the group, current systems have no way of identifying which of the group members were improperly invited into the group by the malicious node. These malicious nodes may also improperly exclude members from the group by issuing revocations to these members. One approach to overcome these problems is to have a group owner that has sole authority to invite, accept, and reject group members. However, as discussed above, without a strong security infrastructure the owner's identity may be spoofed, or DoS attacks may be perpetrated on the group owner, etc. Further, such systems typically cannot maintain the group if the group creator is offline.
There exists, therefore, a need in the art for a peer-to-peer security framework that addresses the above-described threats at a group level that can adversely affect the peer-to-peer group.